package org.sky.config.feign;

import org.springframework.boot.SpringBootConfiguration;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @Auther: 赵明明
 * @Date: 2018/10/23 11:05
 * @Description: 远程调用：Feign
 */
@SpringBootConfiguration
public class FeignConfig {


    /**
     * 在注册中心里进行查找微服务
     * 注解@LoadBalanced：开启负载均衡
     * @return
     */
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        RestTemplate restTemplate = new RestTemplate();
        return  restTemplate;
    }


    /**
     * 使用Feign自己的注解，使用springmvc的注解就会报错
     */
//    @Bean
//    public Contract feignContract() {
//        return new feign.Contract.Default();
//    }

    /**
     * 此方法主要配置登录 Eureka 服务器的帐号与密码。
     *
     * @return
     */
//    @Bean
//    public BasicAuthRequestInterceptor basicAuthRequestInterceptor(){
//        return new BasicAuthRequestInterceptor("admin", "123456");
//    }
//

    /**
     * 设置Feign日志级别 ，需要配合 logging.level.<package.FeignClientClassName>=debug 使用（必须是debug级别）
     * NONE		不记录 (DEFAULT)
     * BASIC	仅记录请求方式、URL及 响应状态码、执行时间
     * HEADERS	记录日志基本信息与请求头、响应头
     * FULL		记录请求头、响应头、正文及元数据
     */
//    @Bean
//    Logger.Level feignLoggerLevel(){
//        return Logger.Level.FULL;
//    }

}
